package com.gitee.cirnochat.group.model.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.gitee.cirnochat.common.model.enums.BaseEnum;
import lombok.Getter;

/**
 * 群聊加入请求类型枚举
 * @author FlanChan
 * @since 2025-06-27 17:31:33
 */
@Getter
public enum GroupMessageType implements BaseEnum<Integer> {
    /**
     * 拒绝加群申请
     */
    DISMISS(0),
    /**
     * 邀请加入群聊
     */
    INVITE(1),
    /**
     * 申请加入群聊
     */
    APPLY(2),
    /**
     * 踢出群聊
     */
    KICK(3),
    /**
     * 升级为管理员
     */
    PROMOTE(4),
    /**
     * 降级为普通成员
     */
    DEMOTE(5),
    /**
     * 离开群聊
     */
    LEAVE(6),
    /**
     * 设置群昵称（管理员行为）
     */
    SET_NICKNAME(7),
    /**
     * 解散群聊
     */
    DISBAND(8);

    @EnumValue // 用于 MyBatis-Plus 映射数据库值
    @JsonValue // 用于 JSON 序列化
    private final Integer value;

    GroupMessageType(Integer value) {
        this.value = value;
    }
}